﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using Business_Logic;
using Business_Entity;

namespace PetSoft.GUI.RRHH
{
    public partial class GUIRegistrarEmpleado : Form
    {
        public GUIRegistrarEmpleado()
        {
        	try
        	{
	            InitializeComponent();
	            this.docIdentidadTB.KeyPress += new KeyPressEventHandler(Utils.SoloNumerosTB);
	            this.telCelularTB.KeyPress += new KeyPressEventHandler(Utils.SoloNumerosTB);
	            this.telCasaTB.KeyPress += new KeyPressEventHandler(Utils.SoloNumerosTB);
	            this.telEmergenciaTB.KeyPress += new KeyPressEventHandler(Utils.SoloNumerosTB);
	            this.nombreTB.KeyPress += new KeyPressEventHandler(Utils.SoloLetrasTB);
	            this.apPaternoTB.KeyPress += new KeyPressEventHandler(Utils.SoloLetrasTB);
	            this.apMaternoTB.KeyPress += new KeyPressEventHandler(Utils.SoloLetrasTB);
	            this.contactoEmergenciaTB.KeyPress += new KeyPressEventHandler(Utils.SoloLetrasTB);
	            this.direccionTB.KeyPress += new KeyPressEventHandler(Utils.SoloLetrasNumerosTB);
        	}
        	catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
        }
        
        void cancelarClick(object sender, EventArgs e)
        {
        	try 
        	{
        		this.Close();
        	}
        	catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
        }
        
        void aceptarClick(object sender, EventArgs e)
        {	
        	try{
	        	if ((nombreTB.Text== "") || (apPaternoTB.Text=="") || (apMaternoTB.Text== "") ||
	        	    (tipoDocIdCB.Text =="") || (sexoCB.Text== "") || (areaCB.Text== "") || (cargoCB.Text== "") ||
	        	    (tipoDocIdCB.Text =="<Seleccionar>") || (docIdentidadTB.Text== "") || 
	        	    (fecNacimientoDTP.Text== "") || (sexoCB.Text== "<Seleccionar>") ||
	        	    (direccionTB.Text== "") || (telCasaTB.Text== "") || 
	        	    ((telEmergenciaTB.Text.Length > 0) && (contactoEmergenciaTB.Text == "")) || 
	        	    ((telEmergenciaTB.Text == "") && (contactoEmergenciaTB.Text.Length > 0)) ||
	        	    (areaCB.Text== "<Seleccionar>") || (cargoCB.Text== "<Seleccionar>"))
	        	{
	        		String mensaje = "Falta ingresar los siguientes datos: \r\n" + "\r\n";
	        		
	        		if (nombreTB.Text == "") 
	        			mensaje += "NOMBRE" + "\r\n";
	        		if (apPaternoTB.Text == "")
	        			mensaje += "APELLIDO PATERNO" + "\r\n";
	        		if (apMaternoTB.Text == "")
	        			mensaje += "APELLIDO MATERNO" + "\r\n";
	        		if ((tipoDocIdCB.Text == "") || (tipoDocIdCB.Text == "<Seleccionar>"))
	        			mensaje += "TIPO DE DOCUMENTO DE IDENTIDAD" + "\r\n";
	        		if (docIdentidadTB.Text == "")
	        			mensaje += "DOCUMENTO DE IDENTIDAD" + "\r\n";
	        		if (fecNacimientoDTP.Text == "")
	        			mensaje += "FECHA DE NACIMIENTO" + "\r\n";
	        		if ((sexoCB.Text == "") || (sexoCB.Text == "<Seleccionar>"))
	        			mensaje += "SEXO" + "\r\n";
	        		if (direccionTB.Text == "")
	        			mensaje += "DIRECCION" + "\r\n";
	        		if (telCasaTB.Text == "")
	        			mensaje += "TELEFONO CASA" + "\r\n";
	        		if ((contactoEmergenciaTB.Text.Length > 0) && (telEmergenciaTB.Text == ""))
	        			mensaje += "TELEFONO EMERGENCIA" + "\r\n";
	        		if ((contactoEmergenciaTB.Text == "") && (telEmergenciaTB.Text.Length > 0))
	        			mensaje += "CONTACTO EMERGENCIA" + "\r\n";
	        		if ((areaCB.Text == "") || (areaCB.Text == "<Seleccionar>"))
	        			mensaje += "AREA" + "\r\n";
	        		if ((cargoCB.Text == "") || (cargoCB.Text == "<Seleccionar>"))
	        			mensaje += "CARGO" + "\r\n";
	        		
	        		mensaje += "\r\n";
	        		MessageBox.Show(mensaje, "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
	        	}
	        	else 
	        	{
	        		if ((tipoDocIdCB.Text == "DNI") && (docIdentidadTB.Text.Length < 8))
	        		{
	        			MessageBox.Show("El numero de DNI está incompleto.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
	        		}
	        		else if ((tipoDocIdCB.Text == "CARNET EXTRANJERIA") && (docIdentidadTB.Text.Length < 9))
	        		{
	        			MessageBox.Show("El numero de CARNET EXTRANJERIA está incompleto.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
	        		}
	        		else if ((tipoDocIdCB.Text == "PASAPORTE") && (docIdentidadTB.Text.Length < 7))
	        		{
	        			MessageBox.Show("El numero de PASAPORTE está incompleto.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
	        		}
	        		else if (telCasaTB.Text.Length < 7)
	        		{
	        			MessageBox.Show("El numero de TELEFONO CASA está incompleto.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
	        		}
	        		else if ((telCelularTB.Text.Length > 0) && (telCelularTB.Text.Length < 9))
	        		{
	        			MessageBox.Show("El numero de TELEFONO CELULAR está incompleto.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
	        		}
	        		else if (((telEmergenciaTB.Text.Length > 0) && (telEmergenciaTB.Text.Length < 7)) || 
	        		         ((telEmergenciaTB.Text.Length > 0) && (telEmergenciaTB.Text.Length == 8)))
	        		{
	        			MessageBox.Show("El numero de TELEFONO EMERGENCIA está incompleto.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
	        		}
	        		else if ((DateTime.Now.Year - fecNacimientoDTP.Value.Year) > 100)
	        		{
	        			MessageBox.Show("La fecha de nacimiento no es válida. El nuevo empleado no puede tener más de 100 años.", "Aviso");
	        		}
	        		else if (MessageBox.Show("¿Está seguro que desea registrar a este nuevo empleado?", "Pregunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
	        		{
		        		int resultado;
		        		BLEmpleado bl = new BLEmpleado();
		        		
		        		resultado = bl.registrarEmpleado(nombreTB.Text, apPaternoTB.Text, apMaternoTB.Text, tipoDocIdCB.Text,
		        		           			               docIdentidadTB.Text, fecNacimientoDTP.Text, sexoCB.Text,
		        		                      			   direccionTB.Text, telCasaTB.Text, telCelularTB.Text,
		        		                           		   telEmergenciaTB.Text, contactoEmergenciaTB.Text,
		        		                      			   areaCB.Text, cargoCB.Text);
		        		if (resultado == 1)
		        		{
		        			MessageBox.Show("Nuevo empleado registrado.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);       			
		        			this.Close();
		        		}
		        		else if (resultado == 2)
		        			MessageBox.Show("Empleado ya existe", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
		        		else
		        		{
		        			//MessageBox.Show("Error de registro de empleado", "Error");
		        		}
	        		}
	        	}
        	}
        	catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
        }
        
        void habilitarCargo(object sender, EventArgs e)
        {
        	try
        	{
	        	if (areaCB.Text != "<Seleccionar>")
	        	{
	        		this.cargoCB.Enabled = true;
	        		this.cargoCB.Items.Clear();
	        		this.cargoCB.Items.AddRange(new object[] {
	        	        "<Seleccionar>"});
	        		
	        		BLCargo bl = new BLCargo();
	        		  		 
	        		List<BECargo> lista = bl.obtenerCargo(this.areaCB.Text);
	        		
	        		if (lista != null)
		        	{
	        			for(int i=0; i<lista.Count; i++)
	        				this.cargoCB.Items.Add(lista[i].Descripcion);
	        			cargoCB.Text = "<Seleccionar>";
		        	}
		        	else
		        	{
		        		//MessageBox.Show("Error cargando datos de la BD","Error");
		        	}
		        }
	        	else
	        	{
	        		this.cargoCB.Enabled = false;
	        	}
        	}
        	catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
        }
        
        void GUIRegistrarEmpleadoLoad(object sender, EventArgs e)
        {
        	try{
	        	BLTipoDocumento bl1 = new BLTipoDocumento();
	        	BLArea bl2 = new BLArea();
	  	
	        	List<BETipoDocumento> lista1 = bl1.obtenerTipoDocumento();
	        	List<BEArea> lista2 = bl2.obtenerArea();
	        	
	        	this.sexoCB.Text = "<Seleccionar>";
	        	
	        	if (lista1 != null)
	        	{
	        		for(int i=0; i<lista1.Count; i++)
	        			this.tipoDocIdCB.Items.Add(lista1[i].Descripcion);
	        		this.tipoDocIdCB.Text = "<Seleccionar>";
	        	}
	        	else
	        	{
	        		//MessageBox.Show("Error cargando datos de la BD","Error");
	        	}
	        	
	          	if (lista2 != null)
	        	{
	        		for(int i=0; i<lista2.Count; i++)
	        			this.areaCB.Items.Add(lista2[i].Descripcion);
	        		this.areaCB.Text = "<Seleccionar>";
	        	}
	        	else
	        	{
	        		//MessageBox.Show("Error cargando datos de la BD","Error");
	        	}
        	}
        	catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
        }
           
        void cambiaTipoDocID(object sender, EventArgs e)
        {
        	try
        	{
	        	docIdentidadTB.Text = "";
	        	
	        	if (tipoDocIdCB.Text == "DNI")
	        	{
	        		docIdentidadTB.MaxLength = 8;	
	        	}
	       		else if (tipoDocIdCB.Text == "CARNET EXTRANJERIA")
	       		{
	       			docIdentidadTB.MaxLength = 9;	
	       		}
	       		else if (tipoDocIdCB.Text == "PASAPORTE")
	       		{
	     			docIdentidadTB.MaxLength = 7;	
	       		}
	       		else docIdentidadTB.MaxLength = 20;
        	}
        	catch (Exception ex)
			{
				MessageBox.Show("Error: " + ex,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
        }
    }
}
